AutoCompleteTextView是EditText引申出的進階元件,當使用者輸入資料到一半時,跳出資料庫裡,符合使用者輸入內容的資料,
android:completionThreshold="1"
=設定使用者輸入的內容到第幾個時,顯示跟內容一樣的選單選項,預設是1android:dropDownHeight
=設定下拉選單的高android:dropDownWidth
=設定下拉選單的寬android:popupBackground="@color/blue"
=設定下拉選單的背景顏色
先建立一個簡單的字串集合String[] data = {"Apple", "Banana", "Cherry", "Date","Grapes", "Orange", "Pineapple", "Strawberry"};
這裡使用是最簡單的方法調用android內建的陣列字串的adapter
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, data);
autoCompleteTextView.setAdapter(adapter);
如果基礎的AutoCompleteTextView到這裡就結束了、w、
是不是很簡單呢!
simple_dropdown_item_1line
是預設的選單選項輸出畫面我們之前只能更改選單畫面的背ㄉㄧㄥ顏色,但當我們需要更改選單文字顏色時,會非常困難,我們需要先新增一個自定義的Adapter
程式碼我就丟在這不做贅述
public class MainTextViewArrayAdapter extends ArrayAdapter<String> {
public MainTextViewArrayAdapter(@NonNull Context context, int resource, @NonNull String[] objects) {
super(context, resource, objects);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
textView.setTextColor(getContext().getResources().getColor(android.R.color.white)); // 設定文字顏色
return view;
}
@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
textView.setTextColor(getContext().getResources().getColor(android.R.color.white)); // 設定文字顏色
return view;
}
}
最後在Activity改用我們的自訂adapter